package unlp.edu.servlets;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import unlp.edu.core.*;

/**
 * Servlet implementation class SistemaServlet
 */
public class SistemaServlet extends HttpServlet implements Servlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SistemaServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		//leo la informacion enviada por el formulario
		String nombreProyecto = request.getParameter("Nomproyecto"); 
		String liderProyecto = request.getParameter("Nomlider");
		
		// Creamos el objeto Sistema si aun no ha sido creado en la sesion
		Sistema sistema = 
			(Sistema)request.getSession(true).getAttribute("sistemaBugTracker"); //devuelve el objeto asociado al string "sistemaBugTrucker" en esta sesion, si existe uno
			if(sistema == null)
			{
				// sistema = new Sistema();
				sistema = Sistema.getInstance(); // creamos un objeto sistema
			}
		
		// Agrego el nuevo proyecto a la lista de proyectos del sistema
			//Creo rol de sistema
			Role rolProyecto = sistema.nuevoRolProyecto("Lider");
			//Creo un usuario lider
			Usuario usuario1 = sistema.nuevoUsuario(liderProyecto, rolProyecto);
			
		sistema.nuevoProyecto(nombreProyecto, usuario1);
		
		//Configuramos un objeto sistema en la sesion para que Sistema.jsp acceda a el y ejecute el servlet y luego le devuelva el control a Sistema.jsp
		request.getSession().setAttribute("sistemaBugTracker", sistema); // enlazamos el objeto sistema a la sesion usando el string "sistemaBugTracker" 
		getServletContext().getRequestDispatcher("/Sistema.jsp").forward(request, response); // devuelve el control a Sistema.jsp
	
	}

}
